<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>AngelScript: asIObjectType Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">AngelScript
   
   </div>
   
  </td>
  
  
  
   
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classas_i_object_type.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">asIObjectType Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="asIObjectType" -->
<p>The interface for an object type.  
</p>

<p><a href="classas_i_object_type-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Miscellaneous</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_engine.html">asIScriptEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a7322b9244acd1210a32d93da9aead718">GetEngine</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the script engine.  <a href="#a7322b9244acd1210a32d93da9aead718"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#aa923386cd3e98312f0049e82927af5f6">GetConfigGroup</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the config group in which the type was registered.  <a href="#aa923386cd3e98312f0049e82927af5f6"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Memory management</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#aaf11085b174893774dd96fa44650402f">AddRef</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the reference counter.  <a href="#aaf11085b174893774dd96fa44650402f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a23d1d07eccd17e01bb3de349f5c39963">Release</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrease reference counter.  <a href="#a23d1d07eccd17e01bb3de349f5c39963"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Type info</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a2075998cce987c3643d52de7abd99868">GetName</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a temporary pointer to the name of the datatype.  <a href="#a2075998cce987c3643d52de7abd99868"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a9bff7795a416c42cc78b12bc0b711819">GetBaseType</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object type that this type derives from.  <a href="#a9bff7795a416c42cc78b12bc0b711819"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a421170cf83894a9f3fb084eaa852356e">DerivesFrom</a> (const <a class="el" href="classas_i_object_type.html">asIObjectType</a> *objType) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the type inherits directly or indirectly from the informed type.  <a href="#a421170cf83894a9f3fb084eaa852356e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#ad75a7e9681e12d2125fbe2f416c5f6e0">GetFlags</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object type flags.  <a href="#ad75a7e9681e12d2125fbe2f416c5f6e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a201bd5cc143082f844f701a5fef65bed">GetSize</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the object type.  <a href="#a201bd5cc143082f844f701a5fef65bed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#abca86b08edf43ca6d92366fb6572c4df">GetTypeId</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type id for the object type.  <a href="#abca86b08edf43ca6d92366fb6572c4df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a0107578e233ec491808ae7e1b35a9a6f">GetSubTypeId</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the type id of the template sub type.  <a href="#a0107578e233ec491808ae7e1b35a9a6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a0c014a26a9ad4f6ee57a9424e62bc575">GetSubType</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the template subtype, in case it is an object type.  <a href="#a0c014a26a9ad4f6ee57a9424e62bc575"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Interfaces</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#aba201ffbef5d842f5823727efd860e93">GetInterfaceCount</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of interfaces implemented.  <a href="#aba201ffbef5d842f5823727efd860e93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a38b81636770d95b66c4ec473f0e48bfb">GetInterface</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a temporary pointer to the specified interface or null if none are found.  <a href="#a38b81636770d95b66c4ec473f0e48bfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a3376ce175e2f57162446dc9967b0bd6f">Implements</a> (const <a class="el" href="classas_i_object_type.html">asIObjectType</a> *objType) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the type implements the informed interface type.  <a href="#a3376ce175e2f57162446dc9967b0bd6f"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Factories</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a5682ef0572341f1f4aa8542d72f59c2d">GetFactoryCount</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of factory functions for the object type.  <a href="#a5682ef0572341f1f4aa8542d72f59c2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a8ca6e617d576841a225540e90f918af8">GetFactoryIdByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory id by index.  <a href="#a8ca6e617d576841a225540e90f918af8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a3aa646c8a7d7e1efb5af2bde6f58b731">GetFactoryIdByDecl</a> (const char *decl) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory id by declaration.  <a href="#a3aa646c8a7d7e1efb5af2bde6f58b731"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a729e709e446e419cb95ade7ccc1fd427">GetFactoryByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory function by the index.  <a href="#a729e709e446e419cb95ade7ccc1fd427"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a53c799db82ab17dd3f3ee8471b53370b">GetFactoryByDecl</a> (const char *decl) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the factory function by the declaration.  <a href="#a53c799db82ab17dd3f3ee8471b53370b"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a820500be1f8f1dd95df54867b7e445b1">GetMethodCount</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of methods for the object type.  <a href="#a820500be1f8f1dd95df54867b7e445b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a01a8a47cb7c7f3e1a21c256b25f16c09">GetMethodIdByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method id by index.  <a href="#a01a8a47cb7c7f3e1a21c256b25f16c09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#afb70d2042e92b2eb383b813260c6c9f1">GetMethodIdByName</a> (const char *name, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method id by name.  <a href="#afb70d2042e92b2eb383b813260c6c9f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a20699d68d56dc614c3105506b68ffed9">GetMethodIdByDecl</a> (const char *decl, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method id by declaration.  <a href="#a20699d68d56dc614c3105506b68ffed9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a373a46ab316a5030ca43f0780dd5039f">GetMethodByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by index.  <a href="#a373a46ab316a5030ca43f0780dd5039f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#ad05df0392fb1628cb7b17783917da0b8">GetMethodByName</a> (const char *name, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by name.  <a href="#ad05df0392fb1628cb7b17783917da0b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a3b3bdbd8c4290724cc396cede83fa089">GetMethodByDecl</a> (const char *decl, bool getVirtual=true) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the method by declaration.  <a href="#a3b3bdbd8c4290724cc396cede83fa089"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#ae844dd84a1f17be41c19cb5c27765ca6">GetMethodDescriptorByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, bool getVirtual=true) const =0</td></tr>
<tr><td colspan="2"><div class="groupHeader">Properties</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a18ccd38257957182b18750313ae7b411">GetPropertyCount</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of properties that the object contains.  <a href="#a18ccd38257957182b18750313ae7b411"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#af2a6796b4a3adc74ebc4b6cebe0cd00d">GetProperty</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, const char **name, int *typeId=0, bool *isPrivate=0, int *offset=0, bool *isReference=0) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the attributes of the property.  <a href="#af2a6796b4a3adc74ebc4b6cebe0cd00d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a31cc1d27bbb906e2b0a506de7e1077a3">GetPropertyDeclaration</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the declaration of the property.  <a href="#a31cc1d27bbb906e2b0a506de7e1077a3"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Behaviours</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a7d1c56b8a7b06bf2db1482c3af1f6965">GetBehaviourCount</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of behaviours.  <a href="#a7d1c56b8a7b06bf2db1482c3af1f6965"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a2d9b43d22da3196777b883fb9aa03747">GetBehaviourByIndex</a> (<a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> index, <a class="el" href="angelscript_8h.html#a7e38df5b10ec8cbf2a688f1d114097c5">asEBehaviours</a> *outBehaviour) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the function id and type of the behaviour.  <a href="#a2d9b43d22da3196777b883fb9aa03747"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">User data</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#a4d542ed1b449f83f712c38bf27f78821">SetUserData</a> (void *data)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Register the memory address of some user data.  <a href="#a4d542ed1b449f83f712c38bf27f78821"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_object_type.html#aa00883f6c7d65651a4c0a8cfc7768c7a">GetUserData</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the previously registered user data.  <a href="#aa00883f6c7d65651a4c0a8cfc7768c7a"></a><br/></td></tr>
</table>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aaf11085b174893774dd96fa44650402f"></a><!-- doxytag: member="asIObjectType::AddRef" ref="aaf11085b174893774dd96fa44650402f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::AddRef </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of references to this object.</dd></dl>
<p>Call this method when storing an additional reference to the object. </p>

</div>
</div>
<a class="anchor" id="a421170cf83894a9f3fb084eaa852356e"></a><!-- doxytag: member="asIObjectType::DerivesFrom" ref="a421170cf83894a9f3fb084eaa852356e" args="(const asIObjectType *objType) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool asIObjectType::DerivesFrom </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classas_i_object_type.html">asIObjectType</a> *&#160;</td>
          <td class="paramname"><em>objType</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objType</td><td>The potential parent type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the type inherits directly or indirectly from the informed type. </dd></dl>

</div>
</div>
<a class="anchor" id="a9bff7795a416c42cc78b12bc0b711819"></a><!-- doxytag: member="asIObjectType::GetBaseType" ref="a9bff7795a416c42cc78b12bc0b711819" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a>* asIObjectType::GetBaseType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the object type that this type derives from.</dd></dl>
<p>This method will only return a pointer in case of script classes that derives from another script class.</p>
<p>This does not increase the reference count of the returned object type. </p>

</div>
</div>
<a class="anchor" id="a2d9b43d22da3196777b883fb9aa03747"></a><!-- doxytag: member="asIObjectType::GetBehaviourByIndex" ref="a2d9b43d22da3196777b883fb9aa03747" args="(asUINT index, asEBehaviours *outBehaviour) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetBehaviourByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#a7e38df5b10ec8cbf2a688f1d114097c5">asEBehaviours</a> *&#160;</td>
          <td class="paramname"><em>outBehaviour</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the behaviour. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outBehaviour</td><td>Receives the type of the behaviour. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The function id of the behaviour. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asINVALID_ARG</td><td>The <em>index</em> is too large. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7d1c56b8a7b06bf2db1482c3af1f6965"></a><!-- doxytag: member="asIObjectType::GetBehaviourCount" ref="a7d1c56b8a7b06bf2db1482c3af1f6965" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetBehaviourCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of behaviours for this type. </dd></dl>

</div>
</div>
<a class="anchor" id="aa923386cd3e98312f0049e82927af5f6"></a><!-- doxytag: member="asIObjectType::GetConfigGroup" ref="aa923386cd3e98312f0049e82927af5f6" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asIObjectType::GetConfigGroup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The name of the config group, or null if not set. </dd></dl>

</div>
</div>
<a class="anchor" id="a7322b9244acd1210a32d93da9aead718"></a><!-- doxytag: member="asIObjectType::GetEngine" ref="a7322b9244acd1210a32d93da9aead718" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_engine.html">asIScriptEngine</a>* asIObjectType::GetEngine </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the engine. </dd></dl>

</div>
</div>
<a class="anchor" id="a53c799db82ab17dd3f3ee8471b53370b"></a><!-- doxytag: member="asIObjectType::GetFactoryByDecl" ref="a53c799db82ab17dd3f3ee8471b53370b" args="(const char *decl) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetFactoryByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The declaration of the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The matching factory function or null if there are no matches </dd></dl>

</div>
</div>
<a class="anchor" id="a729e709e446e419cb95ade7ccc1fd427"></a><!-- doxytag: member="asIObjectType::GetFactoryByIndex" ref="a729e709e446e419cb95ade7ccc1fd427" args="(asUINT index) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetFactoryByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the factory function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The factory function or null if the index is invalid. </dd></dl>

</div>
</div>
<a class="anchor" id="a5682ef0572341f1f4aa8542d72f59c2d"></a><!-- doxytag: member="asIObjectType::GetFactoryCount" ref="a5682ef0572341f1f4aa8542d72f59c2d" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetFactoryCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of factory functions for this object. </dd></dl>

</div>
</div>
<a class="anchor" id="a3aa646c8a7d7e1efb5af2bde6f58b731"></a><!-- doxytag: member="asIObjectType::GetFactoryIdByDecl" ref="a3aa646c8a7d7e1efb5af2bde6f58b731" args="(const char *decl) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetFactoryIdByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The factory signature. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error, or the factory id. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asNO_FUNCTION</td><td>Didn't find any matching functions. </td></tr>
    <tr><td class="paramname">asINVALID_DECLARATION</td><td><em>decl</em> is not a valid declaration. </td></tr>
    <tr><td class="paramname">asERROR</td><td>The module for the type was not built successfully.</td></tr>
  </table>
  </dd>
</dl>
<p>The factory function is named after the object type and returns a handle to the object. Example:</p>
<div class="fragment"><pre class="fragment"> <span class="keywordtype">id</span> = type-&gt;<a class="code" href="classas_i_object_type.html#a3aa646c8a7d7e1efb5af2bde6f58b731" title="Returns the factory id by declaration.">GetFactoryIdByDecl</a>(<span class="stringliteral">&quot;object@ object(int arg1, int arg2)&quot;</span>);
</pre></div> 
</div>
</div>
<a class="anchor" id="a8ca6e617d576841a225540e90f918af8"></a><!-- doxytag: member="asIObjectType::GetFactoryIdByIndex" ref="a8ca6e617d576841a225540e90f918af8" args="(asUINT index) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetFactoryIdByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the factory function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error, or the factory id. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asINVALID_ARG</td><td><em>index</em> is out of bounds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad75a7e9681e12d2125fbe2f416c5f6e0"></a><!-- doxytag: member="asIObjectType::GetFlags" ref="ad75a7e9681e12d2125fbe2f416c5f6e0" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#a5428f0c940201e5f3bbb28304aeb81bc">asDWORD</a> asIObjectType::GetFlags </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>A bit mask with the flags from <a class="el" href="angelscript_8h.html#a855d86fa9ee15b9f75e553ee376b5c7a">asEObjTypeFlags</a>.</dd></dl>
<p>Script classes are identified by having the asOBJ_SCRIPT_OBJECT flag set. Interfaces are identified as a script class with a size of zero.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classas_i_object_type.html#a201bd5cc143082f844f701a5fef65bed" title="Returns the size of the object type.">GetSize</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a38b81636770d95b66c4ec473f0e48bfb"></a><!-- doxytag: member="asIObjectType::GetInterface" ref="a38b81636770d95b66c4ec473f0e48bfb" args="(asUINT index) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a>* asIObjectType::GetInterface </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The interface index. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to the interface type. </dd></dl>

</div>
</div>
<a class="anchor" id="aba201ffbef5d842f5823727efd860e93"></a><!-- doxytag: member="asIObjectType::GetInterfaceCount" ref="aba201ffbef5d842f5823727efd860e93" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetInterfaceCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of interfaces implemented by this type. </dd></dl>

</div>
</div>
<a class="anchor" id="a3b3bdbd8c4290724cc396cede83fa089"></a><!-- doxytag: member="asIObjectType::GetMethodByDecl" ref="a3b3bdbd8c4290724cc396cede83fa089" args="(const char *decl, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetMethodByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The method signature. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The method or null on error.</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>The method will find the script method with the exact same declaration. </p>

</div>
</div>
<a class="anchor" id="a373a46ab316a5030ca43f0780dd5039f"></a><!-- doxytag: member="asIObjectType::GetMethodByIndex" ref="a373a46ab316a5030ca43f0780dd5039f" args="(asUINT index, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetMethodByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The method or null on error.</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>By default this returns the virtual method for script classes. This will allow you to call the virtual method on classes, and rely on the polymorphism to call the correct implementation. If you wish to inspect the real method, then you should set the second parameter to false to retrieve the real method. </p>

</div>
</div>
<a class="anchor" id="ad05df0392fb1628cb7b17783917da0b8"></a><!-- doxytag: member="asIObjectType::GetMethodByName" ref="ad05df0392fb1628cb7b17783917da0b8" args="(const char *name, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetMethodByName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Tthe method or null in case of error</dd></dl>
<p>This method should be used to retrieve the script method for the object that you wish to execute. The method is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method. </p>

</div>
</div>
<a class="anchor" id="a820500be1f8f1dd95df54867b7e445b1"></a><!-- doxytag: member="asIObjectType::GetMethodCount" ref="a820500be1f8f1dd95df54867b7e445b1" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetMethodCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of methods for this object. </dd></dl>

</div>
</div>
<a class="anchor" id="ae844dd84a1f17be41c19cb5c27765ca6"></a><!-- doxytag: member="asIObjectType::GetMethodDescriptorByIndex" ref="ae844dd84a1f17be41c19cb5c27765ca6" args="(asUINT index, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_script_function.html">asIScriptFunction</a>* asIObjectType::GetMethodDescriptorByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd></dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>2011-10-03. Use <a class="el" href="classas_i_object_type.html#a373a46ab316a5030ca43f0780dd5039f" title="Returns the method by index.">asIObjectType::GetMethodByIndex</a> instead </dd></dl>

</div>
</div>
<a class="anchor" id="a20699d68d56dc614c3105506b68ffed9"></a><!-- doxytag: member="asIObjectType::GetMethodIdByDecl" ref="a20699d68d56dc614c3105506b68ffed9" args="(const char *decl, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetMethodIdByDecl </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>decl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">decl</td><td>The method signature. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error, or the method id. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asMULTIPLE_FUNCTIONS</td><td>Found multiple matching methods. </td></tr>
    <tr><td class="paramname">asNO_FUNCTION</td><td>Didn't find any matching method. </td></tr>
    <tr><td class="paramname">asINVALID_DECLARATION</td><td><em>decl</em> is not a valid declaration. </td></tr>
    <tr><td class="paramname">asERROR</td><td>The module for the type was not built successfully.</td></tr>
  </table>
  </dd>
</dl>
<p>This method should be used to retrieve the id of the script method for the object that you wish to execute. The id is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>The method will find the script method with the exact same declaration. </p>

</div>
</div>
<a class="anchor" id="a01a8a47cb7c7f3e1a21c256b25f16c09"></a><!-- doxytag: member="asIObjectType::GetMethodIdByIndex" ref="a01a8a47cb7c7f3e1a21c256b25f16c09" args="(asUINT index, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetMethodIdByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error, or the method id. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asINVALID_ARG</td><td><em>index</em> is out of bounds.</td></tr>
  </table>
  </dd>
</dl>
<p>This method should be used to retrieve the id of the script method for the object that you wish to execute. The id is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method.</p>
<p>By default this returns the virtual method for script classes. This will allow you to call the virtual method on classes, and rely on the polymorphism to call the correct implementation. If you wish to inspect the real method, then you should set the second parameter to false to retrieve the real method. </p>

</div>
</div>
<a class="anchor" id="afb70d2042e92b2eb383b813260c6c9f1"></a><!-- doxytag: member="asIObjectType::GetMethodIdByName" ref="afb70d2042e92b2eb383b813260c6c9f1" args="(const char *name, bool getVirtual=true) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetMethodIdByName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>getVirtual</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">getVirtual</td><td>Set to true if the virtual method or the real method should be retrieved. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error, or the method id. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asMULTIPLE_FUNCTIONS</td><td>Found multiple matching methods. </td></tr>
    <tr><td class="paramname">asNO_FUNCTION</td><td>Didn't find any matching method.</td></tr>
  </table>
  </dd>
</dl>
<p>This method should be used to retrieve the id of the script method for the object that you wish to execute. The id is then sent to the context's <a class="el" href="classas_i_script_context.html#a43976f42dfc6c1af23e132d36265173a">Prepare</a> method. </p>

</div>
</div>
<a class="anchor" id="a2075998cce987c3643d52de7abd99868"></a><!-- doxytag: member="asIObjectType::GetName" ref="a2075998cce987c3643d52de7abd99868" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asIObjectType::GetName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>A null terminated string with the name of the object type. </dd></dl>

</div>
</div>
<a class="anchor" id="af2a6796b4a3adc74ebc4b6cebe0cd00d"></a><!-- doxytag: member="asIObjectType::GetProperty" ref="af2a6796b4a3adc74ebc4b6cebe0cd00d" args="(asUINT index, const char **name, int *typeId=0, bool *isPrivate=0, int *offset=0, bool *isReference=0) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetProperty </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>typeId</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isPrivate</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>offset</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isReference</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">name</td><td>The name of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">typeId</td><td>The type of the property </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isPrivate</td><td>Whether the property is private or not </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">offset</td><td>The offset into the object where the property is stored </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isReference</td><td>True is the property is not stored inline </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asINVALID_ARG</td><td>The <em>index</em> is out of bounds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a18ccd38257957182b18750313ae7b411"></a><!-- doxytag: member="asIObjectType::GetPropertyCount" ref="a18ccd38257957182b18750313ae7b411" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetPropertyCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of member properties of the script object. </dd></dl>

</div>
</div>
<a class="anchor" id="a31cc1d27bbb906e2b0a506de7e1077a3"></a><!-- doxytag: member="asIObjectType::GetPropertyDeclaration" ref="a31cc1d27bbb906e2b0a506de7e1077a3" args="(asUINT index) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* asIObjectType::GetPropertyDeclaration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a>&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the property </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The declaration of the property, or null on error. </dd></dl>

</div>
</div>
<a class="anchor" id="a201bd5cc143082f844f701a5fef65bed"></a><!-- doxytag: member="asIObjectType::GetSize" ref="a201bd5cc143082f844f701a5fef65bed" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="angelscript_8h.html#ac8186f029686800b7ce36bde4a55c815">asUINT</a> asIObjectType::GetSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes necessary to store instances of this type.</dd></dl>
<p>Application registered reference types doesn't store this information, as the script engine doesn't allocate memory for these itself. </p>

</div>
</div>
<a class="anchor" id="a0c014a26a9ad4f6ee57a9424e62bc575"></a><!-- doxytag: member="asIObjectType::GetSubType" ref="a0c014a26a9ad4f6ee57a9424e62bc575" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classas_i_object_type.html">asIObjectType</a>* asIObjectType::GetSubType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The object type of the template sub type, or null if the template subtype is not an object type. </dd></dl>

</div>
</div>
<a class="anchor" id="a0107578e233ec491808ae7e1b35a9a6f"></a><!-- doxytag: member="asIObjectType::GetSubTypeId" ref="a0107578e233ec491808ae7e1b35a9a6f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetSubTypeId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The type id of the template sub type, or a negative value on error. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">asERROR</td><td>The type is not a template type. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abca86b08edf43ca6d92366fb6572c4df"></a><!-- doxytag: member="asIObjectType::GetTypeId" ref="abca86b08edf43ca6d92366fb6572c4df" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::GetTypeId </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The type id for the object type. </dd></dl>

</div>
</div>
<a class="anchor" id="aa00883f6c7d65651a4c0a8cfc7768c7a"></a><!-- doxytag: member="asIObjectType::GetUserData" ref="aa00883f6c7d65651a4c0a8cfc7768c7a" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void* asIObjectType::GetUserData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The pointer to the user data. </dd></dl>

</div>
</div>
<a class="anchor" id="a3376ce175e2f57162446dc9967b0bd6f"></a><!-- doxytag: member="asIObjectType::Implements" ref="a3376ce175e2f57162446dc9967b0bd6f" args="(const asIObjectType *objType) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool asIObjectType::Implements </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classas_i_object_type.html">asIObjectType</a> *&#160;</td>
          <td class="paramname"><em>objType</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">objType</td><td>The interface type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the type implements the informed interface type. </dd></dl>

</div>
</div>
<a class="anchor" id="a23d1d07eccd17e01bb3de349f5c39963"></a><!-- doxytag: member="asIObjectType::Release" ref="a23d1d07eccd17e01bb3de349f5c39963" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIObjectType::Release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of references to this object.</dd></dl>
<p>Call this method when you will no longer use the references that you own. </p>

</div>
</div>
<a class="anchor" id="a4d542ed1b449f83f712c38bf27f78821"></a><!-- doxytag: member="asIObjectType::SetUserData" ref="a4d542ed1b449f83f712c38bf27f78821" args="(void *data)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void* asIObjectType::SetUserData </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>A pointer to the user data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The previous pointer stored in the object type.</dd></dl>
<p>This method allows the application to associate a value, e.g. a pointer, with the object type instance.</p>
<p>Optionally, a callback function can be <a class="el" href="classas_i_script_engine.html#a7495c0b6307bb983ff807a3c31c4f938">registered</a> to clean up the user data when the object type is destroyed. As the callback is registered with the engine, it is only necessary to do it once, even if more than one context is used. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="angelscript_8h.html">angelscript.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classas_i_object_type.html">asIObjectType</a>      </li>

    <li class="footer">Generated on Sun Jan 29 2012 15:41:04 for AngelScript by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
